/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.isfd.core;

import com.comac.ins.isfd.domain.IsfdMetadata;
import com.comac.ins.isfd.domain.vo.MaterialCountObjectVo;

import java.util.List;
import java.util.Map;

/**
 * @author zb
 * @version v1.0
 * @interfaceName IMaterialGetService
 * @description 材料数据获取接口
 * @date 2024/6/14 10:38
 **/
public interface IMaterialGetService {

    /**
     * 生成树形结构
     *
     * @param isfdMetadata
     * @return
     */
    List<Map<String, Object>> generateTreeNode(IsfdMetadata isfdMetadata, Boolean detail);

    /**
     * 获取树形结构节点详情
     *
     * @param isfdMetadata
     * @param params
     * @return
     */
    List<Map<String, Object>> getTreeNodeDetail(IsfdMetadata isfdMetadata, String[] params);

    /**
     * 通过参数查询树形结构节点数据
     *
     * @param isfdMetadata
     * @param queryParams
     * @return
     */
    List<Map<String, Object>> getNodeDataByParams(IsfdMetadata isfdMetadata, Map<String, Object> queryParams);

    /**
     * 通过类型统计数据
     *
     * @param isfdMetadata
     * @return
     */
    List<MaterialCountObjectVo> countByType(IsfdMetadata isfdMetadata);

}
